//! \file CFile.h
//! \brief TODO: Document
//!
//! TODO: document
// -----------------------------------------------------------------------------
//! This program is free software; you can redistribute it and/or
//! modify it under the terms of the GNU General Public License
//! as published by the Free Software Foundation; either version 2
//! of the License, or (at your option) any later version.
//!
//! This program is distributed in the hope that it will be useful,
//! but WITHOUT ANY WARRANTY; without even the implied warranty of
//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//! GNU General Public License for more details.
//!
//! You should have received a copy of the GNU General Public License
//! along with this program; if not, write to the Free Software Foundation,
//! Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// -----------------------------------------------------------------------------

// Project Includes
#include "SystemTypes.h"

// Standard Includes
#include <string>
#include <vector>

#ifndef C_FILE_H_
  #define C_FILE_H_

  namespace code_sheriff
  {

    //! \class CFile CFile.h "CFile.h"
    //! \brief TODO: document
    //!
    //! TODO: document
    class CFile
    {

      //========================================================================
      public:
      //========================================================================

        //! \brief Class constructor.
        //!
        //! This is the class constructor.  The constructor instantiates an
        //! object instance of the class and initializes the instance for use.
        //!
        //! \b Example: \code
        //! CFile* pFile = new CFile();
        //! \endcode
        CFile(void);

        //! \brief Class destructor.
        //!
        //! This is the class destructor.  The destructor destroys an object
        //! instance of the class and deallocates any memory that was used.
        //!
        //! \b Example: \code
        //! CFile* pFile = new CFile();
        //! delete pFile;
        //! \endcode
        virtual ~CFile();

        //! \brief TODO: document
        //!
        //! TODO: document
        //!
        //! \param [in] FileName
        //!   TODO: document
        //!
        //! \retval Error
        //!   Error code indicating the result of the requested operation.
        //!
        //! \b Example: \code
        //! TODO: document
        //! \endcode
        TERROR load(std::string FileName);

      //========================================================================
      private:
      //========================================================================

        //! \brief TODO: document
        //!
        //! TODO: document
        std::string m_FileName;

        //! \brief TODO: document
        //!
        //! TODO: document
        std::vector<std::string> m_Lines;

        //! \brief TODO: document
        //!
        //! TODO: document
        //!
        //! \b Example: \code
        //! TODO: document
        //! \endcode
        void clear(void);
    };

  } // namespace code_sheriff

#endif // C_FILE_H_

